//
//  PointData.h
//  TrackingProject
//
//  Created by Bassel Saba on 4/15/13.
//
//

#ifndef __TrackingProject__PointData__
#define __TrackingProject__PointData__

#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/nonfree/features2d.hpp>
#include <opencv2/flann/flann.hpp>
#include <opencv2/flann/flann_base.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;
typedef enum{
    RECSTATUS_NOTINITIALIZED,
    RECSTATUS_INITIALIZED,
    RECSTATUS_FINAL
} RecStatus;

class PointData{
public:
    Point3f pt;
    int frames_n;

    RecStatus status;
    Mat templateWindow;
    pair<float,float> offsets;
    PointData(){status = RECSTATUS_NOTINITIALIZED;}
    PointData(Point3f pt,
              int frames_n,
              RecStatus status,
              Mat templateWindow,
              pair<float,float> offsets):pt(pt),frames_n(frames_n),status(status),templateWindow(templateWindow),offsets(offsets){}
    PointData(Mat templateWindow,
              pair<float,float> offsets):templateWindow(templateWindow),offsets(offsets){
        frames_n = 1;
        status = RECSTATUS_NOTINITIALIZED;
    }

};


#endif /* defined(__TrackingProject__PointData__) */
